Systems and methods for mirroring and transcoding media content

ABSTRACT

Systems and methods for mirroring and transcoding media content are provided. In some embodiments, media content stored on a user equipment device is mirrored on a remote server, and the mirrored copy is transcoded and provided to other user devices in a media content format that is appropriate for the user devices. By so doing, the present invention not only provides a convenient and easy way for users to backup media content and access the media content from virtually any device, but also reduces the complexity and costs associated with maintaining reliable and consistent access to media content across various user devices.

BACKGROUND OF THE INVENTION

Recent technological innovations have led to an explosion in usage of consumer electronics, and in particular, portable user devices. It is not unusual for one user to store media content on a myriad of devices (from portable video devices and cell phones to handheld computers and set-top boxes). A problem arises when a user's devices have different sets of requirements and restrictions regarding the type and format of media content that may be delivered to or from a given device. Therefore, sharing media content between a variety of devices can quickly become unwieldy. Another problem arises because consumer electronics, such as portable devices, are prone to failure or loss, which may lead to loss of important, expensive, and sometimes irrecoverable, media content.

SUMMARY OF THE INVENTION

This invention is generally directed to systems and methods for providing access to media content, and in particular, to providing mirroring and transcoding of media content. Among other things, the present invention advantageously allows users to mirror media content stored on a source device onto a remote server and then remotely access the mirrored copy of the media content using other devices owned by the user or otherwise authorized to access the mirrored copy of the media content. For example, in a typical usage scenario, a user may record TV shows or movies using a digital video recorder (DVR) in the user's home network, mirror the recording onto a remote server, and then access the recording from the remote server using, for example, a portable video player (such as a portable television) in a transcoded format of the recording this is appropriate for the portable device without additional external hardware.

In some embodiments, the present invention advantageously provides an easy and automatic backup of media content stored on a source device so that, in case of failure or loss of the source device, the media content may be recovered from the mirrored copy. In addition to providing an additional copy of the media content for data recovery purposes, the mirrored copy may also be leveraged, in some embodiments, to provide access of the media content to other devices which would otherwise rely on the source device for access to the media content. By so doing, the source device is relieved of the burden of servicing remote access requests, and in particular, of the burden of transcoding media content to meet the various device format and specification requirements of the requesting devices. Furthermore, because other devices used by the user may not rely directly on the source device for access to media content stored on the source device, loss or failure of the source device does not preclude other devices from accessing the media content. Unlike known device-based transcoding or backup systems, the present invention does not require the user to acquire additional external devices which may add significantly to system costs, or to acquire knowledge of complex processes to set up various devices to communicate effectively. In some embodiments, the network-based approach of the present invention may also advantageously enable service enhancements such as support for new and future coding formats that may be severely limited in device-based systems.

As used herein, “transcoding” refers to manipulating digitally compressed and coded data (for example video information) in order to convert it from one format (or specification) to another. Where the original, uncompressed source material (rather than a digitally compressed version of the source material) is available to the transcoder, “transcoding,” as used herein, may also refer to encoding the original, uncompressed format of the source material into a new analog or digital format of the source material. As used herein, “media content” refers to any form of electronic information, and may be in analog or digital format. Media content may include, but is not limited to, video content (e.g., TV shows, movies, video advertisement, video recording, etc.), audio content (e.g. music, voice messages, audio lectures, other audio recordings, etc.), images, text (e.g., reports, presentations, letters, forms, etc.), multi-media content (e.g., text, audio, graphics, animation, video, other interactive media, etc.), and any suitable combination thereof. As used herein, “mirroring” refers to the direct or indirect copying of a data set, and may typically include subsequent updates to the mirrored copy in order to keep the mirror up-to-date with the original data set. Mirroring may be “live,” in which case the mirror copy is automatically updated in response to an update to the original data se. However, in some embodiments, mirroring may be performed according to a predetermined schedule. The data set mirrored may correspond to an entire storage drive or disk on a user device, or a subset of the data set on the storage drive.

In one aspect of the invention, media content stored on one user equipment device (referred to herein as the “source device”) is mirrored on a remote server coupled to the user equipment device over a network. The user may mirror media content from multiple user devices associated with the user. In some embodiments, the user may designate one or more storage drives on the source device to be mirrored on the remote server. Alternatively, the user may designate a subset of the media content on one or more storage drives on the source device, and the remote server will mirror only the designated subset. For example, the user may choose to mirror only specific file types (e.g., MPEG, MP3, Windows Media, etc.). The user may also restrict access to the mirrored copies to authorized users, to authorized devices, or to authorized users using authorized requesting devices.

Media content mirrored on the remote server may be provided to other user devices in the original media content format or in a transcoded media content format. In some embodiments, the mirrored copy of the media content may be provided by the remote server to other devices in response to a request to access the media content received from the device. In some embodiments, the mirrored copy of the media content may be automatically provided to other user devices. As used herein, a “requesting device” is any device that receives a mirrored copy of the media content in an original or transcoded format regardless of whether or not the device transmitted a request for the media content. In some embodiments, in response to a user input received by a requesting device to access the media content, the remote server transcodes the mirrored copy of the media content into a second media content format that is appropriate for the requesting device and provides the mirrored, transcoded copy of the media content to the requesting device. In some embodiments, the remote server may select a media content format that is appropriate for the requesting device from a plurality of media content formats based on the capabilities of the requesting device. Capabilities of a requesting device that may affect the media content format selected by the remote server may include, but are not limited to, the storage, display, and bandwidth capabilities of the requesting device. In some embodiments, the remote server may transcode the mirrored copy of the media content into the second media content format prior to receiving the user request from the requesting device.

In some embodiments, the mirrored copy of the media content may be automatically provided to all user equipment devices designated by the user to receive such automatic updates in a appropriate media content format for each designated device. For example, a user may designate a personal computer (PC) to receive a mirrored copy of all media content mirrored from the user's portable digital assistant (PDA). In some embodiments, mirrored content from these particular source devices may be provided to the designated user device or devices based, for example, on a user-determined schedule. Thus, in addition to providing a backup solution for media content on all the user's devices, in some embodiments, the present invention may also serve to synchronize media content across various user equipment devices without requiring external transcoding hardware, regardless of the physical proximity of devices to each other. In this manner, the user may be provided with immediate and automatic access to all of the user's media content from any of the devices owned or authorized by the user.

In some embodiments, media content provided by the remote server may be played by the remote server on the requesting device. In these embodiments, the remote server may maintain a pointer to the media content stream, and adjust the pointer in response to activation of various playback controls provided on the requesting device. In some embodiments, the user may be provided with VCR-like features such as, for example, the ability to play, stop, rewind, fast-forward, and pause the media content. A user input to activate any of the VCR-like controls may be received by the requesting device and transmitted from the requesting device to the remote server. Upon receiving the user input to activate the control from the requesting device, the remote server may adjust the pointer position in accordance with the activated control. For example, in response to a user input to fast-forward the media content, the remote server may advance the pointer to skip a portion of the streaming media content that corresponds to the fast-forwarded section. In some embodiments, the media content may be provided to the requesting device to be played by a media player that is resident on the requesting device. In these embodiments, the requested media content may be received by the requesting device along with appropriate metadata (e.g., subtitles) for playing the received media content.

In some embodiments, transcoding of the media content may occur in real-time, in concurrence with playing the media content on the requesting device. For example, where appropriate, the remote server may first transcode and provide to the requesting device a portion of the media content corresponding to the beginning of the media content. The remote server may subsequently transcode and provide the remainder of the media content while the already provided portion is played on the requesting device. By so doing, the media content can be accessed quickly and readily with only minimal, if any, delay. In some embodiments, (e.g., where the particular media content is frequently requested by the same requesting device or several requesting devices in the same format), the mirrored copy of the media content may be transcoded into that format and cached on the remote server for servicing future requests.

In some embodiments, multiple remote servers may be used to mirror, transcode, and provide the media content to user equipment devices. For example, a remote mirroring server may store mirrored copies of media content, and a remote transcoding server, that is separate from the remote mirroring server, may service requests from requesting devices or provide automatic updates to designated devices. In these embodiments, the remote transcoding server may, for example, provide the mirrored, transcoded copies of the media content to requesting devices using mirrored copies of the media content obtained from the remote mirroring server. The remote transcoding server may obtain a mirrored copy of the media content in response to an access request, and/or in anticipation of future requests. For example, the remote transcoding server may obtain and pre-transcode media content based on the frequency of access of requests for the media content, or based on some other mechanism for predicting access such as, for example, repeated past access requests during a particular time of day. In some embodiments, mirroring and transcoding may be performed, respectively, by first and second applications resident on the same remote server.

The mirrored copy of the media content may also be provided to other devices without transcoding. For example, media content mirrored from a set-top box that is later replaced due, for example, to device failure may be provided to the replacement set-top box without transcoding, if the mirrored copy of the media content is already in a media content format that is supported by the replacement set-top box. Similarly, a user may recover media content from, a lost cellular telephone by accessing a mirrored copy of the media content using a replacement cellular telephone without transcoding.

In addition to providing the mirrored copy of the media content in a transcoded or original format to other user equipment devices, the remote server may also provide the mirrored copy of the media content to the source device. In some embodiments, the remote server may provide the mirrored copy of the media content to the source device to restore the original if, for any reason (including accidental loss of the media content), the source device no longer stores the original media content. For example, the remote server may restore the media content on the source device from the mirrored copy in response to a user request received by the source device to access the lost media content. In some embodiments, to ensure efficient use of network and server resources, the remote server may not service requests to access the media content received by the source device if the source device still maintains a copy of the requested media content. In such cases, the source device may service user requests to access the media content from the local copy.

The source device and the requesting device may each be any suitable user equipment device that is capable of remote communication with a server in a client-server configuration. In some embodiments, the source device or the requesting device (or both) may be a mobile user device such as, for example, a cellular telephone, a laptop computer, a personal digital assistant, a handheld computer, a portable television system, an automobile television system, a portable media player, or any combination of these devices. In some embodiments, the source device or the requesting device (or both) may be installed or standard equipment such as, for example, a personal computer, a set-top box, a digital video recorder, an optical disc recorder, a digital camera, a home telephone, a laptop computer, a media player, other installed equipment, or any combination of these devices. In some embodiments, the source device or the requesting device (or both) may access the media content using an interactive media guidance application.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:

FIGS. 1 and 2 show illustrative display screens that may be used to provide media guidance application listings in accordance with one embodiment of the invention;

FIG. 3 shows an illustrative user equipment device in accordance with one embodiment of the invention;

FIG. 4 is a diagram of an illustrative interactive media system for mirroring and providing access to mirrored media content in accordance with one embodiment of the invention;

FIG. 5 shows illustrative display screen 500 for setting, mirroring, and sharing a recording of a television program with user equipment devices in accordance with one embodiment of the invention;

FIG. 6 shows illustrative screen 600 for accessing mirrored copies of the media content in accordance with one embodiment of the invention;

FIG. 7 show illustrative process 700 for mirroring and providing access to mirrored media content in accordance with one embodiment of the invention;

FIG. 8 shows illustrative process 800 for mirroring media content stored on a user equipment device onto a remote mirroring server according to one embodiment of the invention; and

FIG. 9 shows illustrative process 900 for providing access to media content mirrored on a remote mirroring server according to one embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The amount of media available to users in any given media delivery system can be substantial. Consequently, many users desire a form of media guidance through an interface that allows users to efficiently navigate media selections and easily identify media that they may desire. An application which provides such guidance is referred to herein as an interactive media guidance application or, sometimes, a media guidance application or a guidance application.

Interactive media guidance applications may take various forms depending on the media for which they provide guidance. One typical type of media guidance application is an interactive television program guide. Interactive television program guides (sometimes referred to as electronic program guides) are well-known guidance applications that, among other things, allow users to navigate among and locate many types of media content including conventional television programming (provided via traditional broadcast, cable, satellite, Internet, or other means), as well as pay-per-view programs, on-demand programs (as in video-on-demand (VOD) systems), Internet content (e.g., streaming media, downloadable media, Webcasts, etc.), and other types of media or video content. Guidance applications also allow users to navigate among and locate content related to the video content including, for example, video clips, articles, advertisements, chat sessions, games, etc.

With the advent of the Internet, mobile computing, and high-speed wireless networks, users are increasingly accessing media on personal computers (PCs) and other devices on which they traditionally did not, such as hand-held computers, personal digital assistants (PDAs), mobile telephones, automobile television systems, mobile televisions, or other mobile devices. On these devices, users increasingly want to navigate among and locate desirable video clips, full motion videos (which may include television programs), images, music files, and other suitable media. Consequently, media guidance is also necessary on these devices, as well. For example, media guidance applications may be provided for media content available only through a television, for media content available only through one or more of these devices, or for media content available both through a television and one or more of these devices. The media guidance applications may be provided as on-line applications (i.e., provided on a web-site), or as stand-alone applications or clients on hand-held computers, PDAs, mobile telephones, or other mobile devices such as, for example, traditionally passive devices that have been enhanced with circuitry for operating media guidance applications (e.g., wrist watches, telephone hand sets, appliances (including kitchen or bathroom appliances), etc.). In some systems, users may control equipment remotely via a media guidance application. For example, users may access an online media guide and set recordings or other settings on their in home equipment. This may be accomplished by the on-line guide controlling the user's equipment directly or via another media guide that runs on the user's equipment. Remote access of interactive media guidance applications is discussed in greater detail in U.S. patent application Ser. No. 11/246,392, filed Oct. 7, 2005, the disclosure of which is hereby incorporated by reference herein in its entirety.

One of the functions of the media guidance application is to provide media listings and media information to users. FIGS. 1-2 and 5-6 show illustrative display screens that may be used to provide media guidance, and, in particular, media listings. The display screens shown in FIGS. 1-2 and 5-6 may be implemented on any suitable device or platform. While the displays of FIGS. 1-2 and 5-6 are illustrated as full screen displays, they may also be fully or partially overlaid over media content being displayed. A user may indicate a desire to access media information by selecting a selectable option provided in a display screen (e.g., a menu option, a listings option, an icon, a hyperlink, etc.) or pressing a dedicated button (e.g., a GUIDE button) on a remote control or other user input interface or device. In response to the user's indication, the media guidance application may provide a display screen with media information organized in one of several ways, such as by time and channel in a grid, by time, by channel, by media type, by category (e.g., movies, sports, news, children, or other categories of programming), or other predefined, user-defined, or other organization criteria.

FIG. 1 shows illustrative grid program listings display 100 arranged by time and channel that also enables access to different types of media content in a single display. Display 100 may include grid 102 with: (1) a column of channel/media type identifiers 104, where each channel/media type identifier (which is a cell in the column) identifies a different channel or media type available; and (2) a row of time identifiers 106, where each time identifier (which is a cell in the row) identifies a time block of programming. Grid 102 also includes cells of program listings, such as program listing 108, where each listing provides the title of the program provided on the listing's associated channel and time. With a user input device, a user can select program listings by moving highlight region 110. Information relating to the program listing selected by highlight region 110 may be provided in program information region 112. Region 112 may include, for example, the program title, the program description, the time the program is provided (if applicable), the channel the program is on (if applicable), the program's rating, and other desired information.

In addition to providing access to linear programming provided according to a schedule, the media guidance application also provides access to non-linear programming which is not provided according to a schedule. Non-linear programming may include content from different media sources including on-demand media content (e.g., VOD), Internet content (e.g., streaming media, downloadable media, etc.), locally stored media content (e.g., video content stored on a digital video recorder (DVR), digital video disc (DVD), video cassette, compact disc (CD), etc.), or other time-insensitive media content. On-demand content may include both movies and original media content provided by a particular media provider (e.g., HBO On Demand providing “The Sopranos” and “Curb Your Enthusiasm”). HBO ON DEMAND is a service mark owned by Time Warner Company L.P. et al. and THE SOPRANOS and CURB YOUR ENTHUSIASM are trademarks owned by the Home Box Office, Inc. Internet content may include web events, such as a chat session or Webcast, or content available on-demand as streaming media or downloadable media through an Internet web site or other Internet access (e.g. FTP).

Grid 102 may provide listings for non-linear programming including on-demand listing 114, recorded media listing 116, and Internet content listing 118. A display combining listings for content from different types of media sources is sometimes referred to as a “mixed-media” display. The various permutations of the types of listings that may be displayed that are different than display 100 may be based on user selection or guidance application definition (e.g., a display of only recorded and broadcast listings, only on-demand and broadcast listings, etc.). As illustrated, listings 114, 116, and 118 are shown as spanning the entire time block displayed in grid 102 to indicate that selection of these listings may provide access to a display dedicated to on-demand listings, recorded listings, or Internet listings, respectively. In other embodiments, listings for these media types may be included directly in grid 102. Additional listings may be displayed in response to the user selecting one of the navigational icons 120. (Pressing an arrow key on a user input device may affect the display in a similar manner as selecting navigational icons 120.)

Display 100 may also include video region 122, advertisement 124, and options region 126. Video region 122 may allow the user to view and/or preview programs that are currently available, will be available, or were available to the user. The content of video region 122 may correspond to, or be independent from, one of the listings displayed in grid 102. Grid displays including a video region are sometimes referred to as picture-in-guide (PIG) displays. PIG displays and their functionalities are described in greater detail in Satterfield et al. U.S. Pat. No. 6,564,378, issued May 13, 2003 and Yuen et al. U.S. Pat. No. 6,239,794, issued May 29, 2001, which are hereby incorporated by reference herein in their entireties. PIG displays may be included in other media guidance application display screens of the present invention.

Advertisement 124 may provide an advertisement for media content that, depending on a viewer's access rights (e.g., for subscription programming), is currently available for viewing, will be available for viewing in the future, or may never become available for viewing, and may correspond to or be unrelated to one or more of the media listings in grid 102. Advertisement 124 may also be for products or services related or unrelated to the media content displayed in grid 102. Advertisement 124 may be selectable and provide further information about media content, provide information about a product or a service, enable purchasing of media content, a product, or a service, provide media content relating to the advertisement, etc. Advertisement 124 may be targeted based on a user's profile/preferences, monitored user activity, the type of display provided, or on other suitable targeted advertisement bases.

While advertisement 124 is shown as rectangular or banner shaped, advertisements may be provided in any suitable size, shape, and location in a guidance application display. For example, advertisement 124 may be provided as a rectangular shape that is horizontally adjacent to grid 102. This is sometimes referred to as a panel advertisement. In addition, advertisements may be overlaid over media content or a guidance application display or embedded within a display. Advertisements may also include text, images, rotating images, video clips, or other types of media content. Advertisements may be stored in the user equipment with the guidance application, in a database connected to the user equipment, in a remote location (including streaming media servers), or on other storage means or a combination of these locations. Providing advertisements in a media guidance application is discussed in greater detail in, for example, Knudson et al., U.S. patent application Ser. No. 10/347,673, filed Jan. 17, 2003, Ward, III et al. U.S. Pat. No. 6,756,997, issued Jun. 29, 2004, and Schein et al. U.S. Pat. No. 6,388,714, issued May 14, 2002, which are hereby incorporated by reference herein in their entireties. It will be appreciated that advertisements may be included in other media guidance application display screens of the present invention.

Options region 126 may allow the user to access different types of media content, media guidance application displays, and/or media guidance application features. Options region 126 may be part of display 100 (and other display screens of the present invention), or may be invoked by a user by selecting an on-screen option or pressing a dedicated or assignable button on a user input device. The selectable options within options region 126 may concern features related to program listings in grid 102 or may include options available from a main menu display. Features related to program listings may include searching for other air times or ways of receiving a program, recording a program, enabling series recording of a program, setting program and/or channel as a favorite, purchasing a program, or other features. Options available from a main menu display may include search options, VOD options, parental control options, access to various types of listing displays, subscribe to a premium service, edit a user's profile, access a browse overlay, or other options.

The media guidance application may be personalized based on a user's preferences. A personalized media guidance application allows a user to customize displays and features to create a personalized “experience” with the media guidance application. This personalized experience may be created by allowing a user to input these customizations and/or by the media guidance application monitoring user activity to determine various user preferences. Users may access their personalized guidance application by logging in or otherwise identifying themselves to the guidance application. Customization of the media guidance application may be made in accordance with a user profile. The customizations may include varying presentation schemes (e.g., color scheme of displays, font size of text, etc.), aspects of media content listings displayed (e.g., only HDTV programming, user-specified broadcast channels based on favorite channel selections, re-ordering the display of channels, recommended media content, etc.), desired recording features (e.g., recording or series recordings for particular users, recording quality, etc.), parental control settings, and other desired customizations.

The media guidance application may allow a user to provide user profile information or may automatically compile user profile information. The media guidance application may, for example, monitor the media the user accesses and/or other interactions the user may have with the guidance application. Additionally, the media guidance application may obtain all or part of other user profiles that are related to a particular user (e.g., from other web sites on the Internet the user accesses, such as www.tvguide.com, from other media guidance applications the user accesses, from other interactive applications the user accesses, from a handheld device of the user, etc.), and/or obtain information about the user from other sources that the media guidance application may access. As a result, a user can be provided with a unified guidance application experience across the user's different devices. This type of user experience is described in greater detail below in connection with FIG. 1. Additional personalized media guidance application features are described in greater detail in Ellis et al., U.S. patent application Ser. No. 11/179,410, filed Jul. 11, 2005, Boyer et al., U.S. patent application Ser. No. 09/437,304, filed Nov. 9, 1999, and Ellis et al., U.S. patent application Ser. No. 10/105,128, filed Feb. 21, 2002, which are hereby incorporated by reference herein in their entireties.

Another display arrangement for providing media guidance is shown in FIG. 2. Video mosaic display 200 includes selectable options 202 for media content information organized based on media type, genre, and/or other organization criteria. In display 200, television listings option 204 is selected, thus providing listings 206, 208, 210, and 212 as broadcast program listings. In some embodiments, display 200 may include selectable feature 220, which may be selected by the user to access a directory of mirrored copy of the media content on a remote server. Detailed description of selectable feature 220 and the user directory are provided below with reference to screen 600 of FIG. 6.

Unlike the listings from FIG. 1, the listings in display 200 are not limited to simple text (e.g., the program title) and icons to describe media. Rather, in display 200 the listings may provide graphical images including cover art, still images from the media content, video clip previews, live video from the media content, or other types of media that indicate to a user the media content being described by the listing. Each of the graphical listings may also be accompanied by text to provide further information about the media content associated with the listing. For example, listing 208 may include more than one portion, including media portion 214 and text portion 216. Media portion 214 and/or text portion 216 may be selectable to view video in full-screen or to view program listings related to the video displayed in media portion 214 (e.g., to view listings for the channel that the video is displayed on).

The listings in display 200 are of different sizes (i.e., listing 206 is larger than listings 208, 210, and 212), but if desired, all the listings may be the same size. Listings may be of different sizes or graphically accentuated to indicate degrees of interest to the user or to emphasize certain content, as desired by the media provider or based on user preferences. Various systems and methods for graphically accentuating media listings are discussed in, for example, Yates, U.S. patent application Ser. No. 11/324,202, filed Dec. 29, 2005, which is hereby incorporated by reference herein in its entirety.

Users may access media content and the media guidance application (and its display screens described above and below) from one or more of their user equipment devices. FIG. 3 shows a generalized embodiment of illustrative user equipment device 300. More specific implementations of user equipment devices are discussed below in connection with FIG. 1. User equipment device 300 may receive media content and data via input/output (hereinafter “I/O”) path 302. I/O path 302 may provide media content (e.g., broadcast programming, on-demand programming, Internet content, and other video or audio) and data to control circuitry 304, which includes processing circuitry 306 and storage 308. Control circuitry 304 may be used to send and receive commands, requests, and other suitable data using I/O path 302. I/O path 302 may connect control circuitry 304 (and specifically processing circuitry 306) to one or more communications paths (described below). I/O functions may be provided by one or more of these communications paths, but are shown as a single path in FIG. 3 to avoid overcomplicating the drawing.

Control circuitry 304 may be based on any suitable processing circuitry 306 such as processing circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, etc. In some embodiments, control circuitry 304 executes instructions for a media guidance application stored in memory (i.e., storage 308). In client-server based embodiments, control circuitry 304 may include communications circuitry suitable for communicating with a guidance application server or other networks or servers. Communications circuitry may include a cable modem, an integrated services digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, or a wireless modem for communications with other equipment. Such communications may involve the Internet or any other suitable communications networks or paths (which is described in more detail in connection with FIG. 1). In addition, communications circuitry may include circuitry that enables peer-to-peer communication of user equipment devices, or communication of user equipment devices in locations remote from each other (described in more detail below).

Memory (e.g., random-access memory, read-only memory, or any other suitable memory), hard drives, optical drives, or any other suitable fixed or removable storage devices (e.g., DVD recorder, CD recorder, video cassette recorder, or other suitable recording device) may be provided as storage 308 that is part of control circuitry 304. Storage 308 may include one or more of the above types of storage devices. For example, user equipment device 300 may include a hard drive for a DVR (sometimes called a personal video recorder, or PVR) and a DVD recorder as a secondary storage device. Storage 308 may be used to store various types of media described herein and guidance application data, including program information, guidance application settings, user preferences or profile information, or other data used in operating the guidance application. Nonvolatile memory may also be used (e.g., to launch a boot-up routine and other instructions).

Control circuitry 304 may include video generating circuitry and tuning circuitry, such as one or more analog tuners, one or more MPEG-2 decoders or other digital decoding circuitry, high-definition tuners, or any other suitable tuning or video circuits or combinations of such circuits. Encoding circuitry (e.g., for converting over-the-air, analog, or digital signals to MPEG signals for storage) may also be provided. Control circuitry 304 may also include scaler circuitry for upconverting and downconverting media into the preferred output format of the user equipment 300. Circuitry 304 may also include digital-to-analog converter circuitry and analog-to-digital converter circuitry for converting between digital and analog signals. The tuning and encoding circuitry may be used by the user equipment to receive and to display, to play, or to record media content. The tuning and encoding circuitry may also be used to receive guidance data. The circuitry described herein, including for example, the tuning, video generating, encoding, decoding, scaler, and analog/digital circuitry, may be implemented using software running on one or more general purpose or specialized processors. Multiple tuners may be provided to handle simultaneous tuning functions (e.g., watch and record functions, picture-in-picture (PIP) functions, multiple-tuner recording, etc.). If storage 308 is provided as a separate device from user equipment 300, the tuning and encoding circuitry (including multiple tuners) may be associated with storage 308.

A user may control the control circuitry 304 using user input interface 310. User input interface 310 may be any suitable user interface, such as a remote control, mouse, trackball, keypad, keyboard, touch screen, touch pad, stylus input, joystick, voice recognition interface, or other user input interfaces. Display 312 may be provided as a stand-alone device or integrated with other elements of user equipment device 300. Display 312 may be one or more of a monitor, a television, a liquid crystal display (LCD) for a mobile device, or any other suitable equipment for displaying visual images. In some embodiments, display 312 may be HDTV-capable. Speakers 314 may be provided as integrated with other elements of user equipment device 300 or may be stand-alone units. The audio component of videos and other media content displayed on display 312 may be played through speakers 314. In some embodiments, the audio may be distributed to a receiver (not shown), which processes and outputs the audio via speakers 314.

User equipment device 300 of FIG. 3 can be implemented in system 400 of FIG. 4 as user television equipment 402, user computer equipment 404, wireless user communications device 406, or any other type of user equipment suitable for accessing media, such as a non-portable gaming machine. For simplicity, these devices may be referred to herein collectively as user equipment, user equipment devices, or user devices. User equipment devices, on which a media guidance application is implemented, may function as a standalone device or may be part of a network of devices. Various network configurations of devices may be implemented and are discussed in more detail below.

System 400 shown in FIG. 4 is an illustrative interactive media distribution system for providing access to media content in one aspect of the present invention. Exemplary system 400 includes media content source 416, media guidance data source 418, user equipment devices 402, 404, and 406, and remote mirroring and transcoding server 440 (which may include mirroring server 430 and transcoding server 450) as well as various communication networks and data links.

User television equipment 402 in system 400 may include a set-top box, an integrated receiver decoder (IRD) for handling satellite television, a television set, a digital storage device, a DVD recorder, a video-cassette recorder (VCR), a digital video recorder, a local media server, or other user television equipment. One or more of these devices may be integrated in a single device if desired. User computer equipment 404 may include a PC, a laptop, a tablet, a WebTV box, a personal computer television (PC/TV), a PC media server, a PC media center, or other user computer equipment. WEBTV is a trademark owned by Microsoft Corp. Wireless user communications device 406 may include PDAs, a mobile telephone, a portable video player, a portable music player, a portable gaming machine, an automobile television system, an enhanced passive device, or other wireless devices.

It should be understood that with the advent of television tuner cards for PC's, WebTV, and the integration of video into other user equipment devices, the lines have become blurred when trying to classify a device as one of the above devices. In fact, each of user television equipment 402, user computer equipment 404, and wireless user communications device 406 may utilize at least some of the system features described in FIG. 3 and, as a result, include flexibility with respect to the type of media content available on the device. For example, user television equipment 402 may be Internet-enabled, allowing for access to Internet content, while user computer equipment 404 may include a tuner allowing for access to television programming. The media guidance application may also have the same layout on the various different types of user equipment or may be tailored to the display capabilities of the user equipment. For example, on user computer equipment, the guidance application may be provided as a web site accessed by a web browser. In another example, the guidance application may be scaled down for wireless user communications devices. System 400 typically includes more than one of each type of user equipment device but only one of each is shown in FIG. 4 to avoid overcomplicating the drawing.

The user equipment devices may be coupled to communications network 414. Namely, user television equipment 402, user computer equipment 404, and wireless user communications device 406 are coupled to communications network 414 via communications paths 408, 410, and 412, respectively. Communications network 414 may be one or more networks including the Internet, a mobile telephone network, mobile device (e.g., Blackberry) network, cable network, public switched telephone network, or other types of communications networks or combinations of communications networks. BLACKBERRY is a service mark owned by Research In Motion Limited Corp. Paths 408, 410, and 412 may separately or together include one or more communications paths, such as, a satellite path, a fiber-optic path, a cable path, a path that supports Internet communications (e.g., IPTV), free-space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communications path or combination of such paths. Path 412 is drawn with dotted lines to indicate that in the exemplary embodiment shown in FIG. 4 it is a wireless path and paths 408 and 410 are drawn as solid lines to indicate they are wired paths (although these paths may be wireless paths, if desired). Communications with the user equipment devices may be provided by one or more of these communications paths, but are shown as a single path in FIG. 4 to avoid overcomplicating the drawing.

Although communications paths are not drawn between user equipment devices, these devices may communicate directly or indirectly with each other via communication paths, such as those described above in connection with paths 408, 410, and 412, as well other short-range point-to-point communication paths, such as USB cables, IEEE 1394 cables, wireless paths (e.g., Bluetooth, infrared, IEEE 802-11x, etc.), or other short-range communication via wired or wireless paths. BLUETOOTH is a certification mark owned by Bluetooth SIG, INC. The user equipment devices may also communicate with each other directly through an indirect path via communications network 414.

System 400 includes media content source 416 and media guidance data source 418 coupled to communications network 414 via communication paths 420 and 422, respectively. Paths 420 and 422 may include any of the communication paths described above in connection with paths 408, 410, and 412. Communications with media content source 416 and media guidance data source 418 may be exchanged over one or more communications paths, but are shown as a single path in FIG. 4 to avoid overcomplicating the drawing. In addition, there may be more than one of each of media content source 416 and media guidance data source 418, but only one of each is shown in FIG. 4 to avoid overcomplicating the drawing. (The different types of each of these sources are discussed below.) If desired, media content source 416 and media guidance data source 418 may be integrated as one source device. Although communications between sources 416 and 418 with user equipment devices 402, 404, and 406 are shown as through communications network 414, in some embodiments, sources 416 and 418 may communicate directly with user equipment devices 402, 404, and 406 via communication paths (not shown) such as those described above in connection with paths 408, 410, and 412.

Media content source 416 may include one or more types of media distribution equipment including a television distribution facility, cable system headend, satellite distribution facility, programming sources (e.g., television broadcasters, such as NBC, ABC, HBO, etc.), intermediate distribution facilities and/or servers, Internet providers, on-demand media servers, and other media content providers. NBC is a trademark owned by the National Broadcasting Company, Inc., ABC is a trademark owned by the ABC, INC., and HBO is a trademark owned by the Home Box Office, Inc. Media content source 416 may be the originator of media content (e.g., a television broadcaster, a Webcast provider, etc.) or may not be the originator of media content (e.g., an on-demand media content provider, an Internet provider of video content of broadcast programs for downloading, etc.). Media content source 416 may include cable sources, satellite providers, on-demand providers, Internet providers, or other providers of media content. Media content source 416 may also include a remote media server used to store different types of media content (including video content selected by a user), in a location remote from any of the user equipment devices.

Media guidance data source 418 may provide media guidance data, such as media listings, media-related information (e.g., broadcast times, broadcast channels, media titles, media descriptions, ratings information (e.g., parental control ratings, critic's ratings, etc.), genre or category information, actor information, logo data for broadcasters' or providers' logos, etc.), media format (e.g., standard definition, high definition, etc.), advertisement information (e.g., text, images, media clips, etc.), on-demand information, and any other type of guidance data that is helpful for a user to navigate among and locate desired media selections.

Media guidance application data may be provided to the user equipment devices using any suitable approach. In some embodiments, the guidance application may be a stand-alone interactive television program guide that receives program guide data via a data feed (e.g., a continuous feed, trickle feed, or data in the vertical blanking interval of a channel). Program schedule data and other guidance data may be provided to the user equipment on a television channel sideband, in the vertical blanking interval of a television channel, using an in-band digital signal, using an out-of-band digital signal, or by any other suitable data transmission technique. Program schedule data and other guidance data may be provided to user equipment on multiple analog or digital television channels. Program schedule data and other guidance data may be provided to the user equipment with any suitable frequency (e.g., continuously, daily, a user-specified period of time, a system-specified period of time, in response to a request from user equipment, etc.). In some approaches, guidance data from media guidance data source 418 may be provided to users' equipment using a client-server approach. For example, a guidance application client residing on the user's equipment may initiate sessions with source 418 to obtain guidance data when needed. Media guidance data source 418 may provide user equipment devices 402, 404, and 406 the media guidance application itself or software updates for the media guidance application.

Media guidance applications may be, for example, stand-alone applications implemented on user equipment devices. In other embodiments, media guidance applications may be client-server applications where only the client resides on the user equipment device. For example, media guidance applications may be implemented partially as a client application on control circuitry 304 of user equipment device 300 and partially on a remote server as a server application (e.g., media guidance data source 418). The guidance application displays may be generated by the media guidance data source 418 and transmitted to the user equipment devices. The media guidance data source 418 may also transmit data for storage on the user equipment, which then generates the guidance application displays based on instructions processed by control circuitry.

System 400 may also include remote mirroring and transcoding server 440 used to mirror media content stored on any of user equipment devices 402, 404, or 406, in a location remote from any of the user equipment devices. Remote mirroring and transcoding server 440 may also be used provide the mirrored copies of the media content in the original or transcoded media content format to requesting devices. Media content that may be mirrored on remote mirroring and transcoding server 440 include, but is not limited to, videos, music, images, other audio content (e.g., voice messages), multi-media content, text, or other suitable media content. If necessary, the mirrored copy of the media content may include metadata associated with the media content. For example, in some embodiments, remote mirroring and transcoding server 440 may store metadata required to successfully play the mirrored copy of the media content on a requesting device. Examples of metadata that may be mirrored along with media content include, but are not limited to, subtitles, text tracks, music information tracks, additional video formats, additional languages, or other additional data. In some embodiments, remote mirroring and transcoding server 440 may be coupled to communications network 414 through communications path 460. Communications path 460 may be any suitable communications path such, as for example, those described in connection with communication path 420. Remote mirroring and transcoding server 440 may reside with media content source 416 but has been drawn as a separate element for clarity.

Remote mirroring and transcoding server 440 may include mirroring server 430 for mirroring media content, and transcoding server 450 for providing the mirrored media content to requesting devices in an original or transcoded format of the media content.

Mirroring server 430 may be based on any suitable combination of hardware and software capable of client-server based interactions with source devices such as, for example, user equipment devices 402, 404, or 406. In the simplified embodiment of FIG. 4, mirroring server 430 includes one or more control circuitry 432, storage 434, communications device (not shown), and application program interface (API) 436 (which may be an application run by control circuitry 432 and stored on storage 434, but has been drawn as a separate element for clarity). Mirroring server 430 may, for example, receive a mirroring request from any of user equipment devices 402, 404, or 406, process the request, create, and store a mirrored copy of the appropriate media content stored on the respective device. In some embodiments, mirroring server 430 may run a suitable database engine, such as a SQL server or Oracle DB, and provide the mirrored content based on queries executed by the database engine.

Control circuitry 432 of mirroring server 430 may include any suitable processor, such as a microprocessor or group of microprocessors, and other processing circuitry such as caching circuitry, direct memory access (DMA) circuitry, and input/output (I/O) circuitry. In some embodiments, control circuitry 432 may also include circuitry suitable for decoding program and data files stored on storage 434 and playing back mirrored copies of the media content on various types of user equipment devices in response to access requests.

Storage 434 of mirroring server 430 may include any suitable storage device including memory or other storage devices, such as random access memory (RAM), read only memory (ROM), flash memory, and a hard disk drive, that is suitable for storing mirrored copies of media content. Media content may be stored on storage 434 in any suitable format (e.g., a Structured Query Language (SQL) database). Storage 434 may also store user profile information for correlating users with their respective user equipment devices and mirrored content. Storage 434 may include several levels of primary, secondary, and auxiliary storage. For example, in some embodiments, the storage level for a mirrored copy of a given media content may be determined based on the frequency of access or other property of the mirrored content, such as the last date of access. In some embodiments, where multi-level storage is employed, the most recently accessed or most frequently accessed mirrored content may be stored in the primary level storage, which is typically the fastest memory level. Although storage 434 is shown in direct connection with control circuitry 432, in some embodiments, at least a portion of storage 434 may be located on a separate data server. For example, in some embodiments, a separate data server may be used for each type of media content (e.g., audio, video, image, text, etc.) mirrored on mirroring server 430.

The communications device (not shown) employed by mirroring server 430 may be any device suitable for communications between mirroring server 430, transcoding server 450, and communications network 414, such as a communication port (e.g., a serial port, parallel port, universal serial bus (USB) port, etc.), modem (e.g., any suitable analog or digital standard modem or cellular modem), network interface card (e.g., an Ethernet card, token ring card, etc.), wireless transceiver (e.g., an infrared, radio, or other suitable analog or digital transceiver), or other suitable communications device.

Media system 400 may include multiple mirroring servers 430, but only one is shown to avoid overcomplicating the drawing. For example, in some embodiments, the particular mirroring server 430 that stores a mirrored copy a given media content may be selected from multiple mirroring servers 430 based on the type of media content (e.g., video, audio, text, etc.) to be stored. In some embodiments, mirroring server 430 may be an application (e.g., a Web server application) resident on remote mirroring and transcoding server 440, rather than a physical server.

Remote mirroring and transcoding server 440 may also include transcoding server 450 coupled to mirroring server 430, user equipment devices 402, 404, and 406, and communications network 414 through communications path 460. In some embodiments, transcoding server 450 may also be in direct communication with mirroring server 430 through communications link 442.

Transcoding server 450 may provide media content mirrored on mirroring server 430 to a requesting device. In some embodiments, transcoding server 450 may provide the media content to be played on-demand by the requesting device in response to requests received from the requesting device to access the media content. In some embodiments, transcoding server 450 may also automatically provide the media content to designated devices selected by the user to receive such automatic updates. Whether the media content is provided by transcoding server 450 automatically or in response to a request, transcoding server 450 may provide the media content in an original or transcoded media content format based, for example, on the capabilities of the requesting or receiving device.

Transcoding server 450 may be based on any suitable combination of hardware and software (such as those described in connection with mirroring server 430) capable of client-server based interactions with requesting devices and, if necessary, server-server interactions with mirroring server 430. In the simplified embodiment of system 400, transcoding server 450 includes one or more control circuitry 452, storage 454, communications device (not shown), and application program interface (API) 456 (which may be an application run by control circuitry 452 and stored on storage 454, but has been drawn as a separate element for clarity). Control circuitry 452, storage 454, and API 456 may be based on any suitable hardware and/or software combination such as those described in connection with control circuitry 432, storage 434, and API 436, respectively, of mirroring server 430. In addition, control circuitry 452 may include logic for decoding various media content formats. For example, if the mirrored copy of the media content is stored as Moving Pictures Experts Group (MPEG) MPEG-2 files, control circuitry 452 may include an MPEG-2 decoder for decoding the media content and converting them to National Television Standards Committee (NTSC) video. Decoding for MPEG-4, H.264, and other suitable media formats may also be provided.

In some embodiments, transcoding server 450 may include logic for detecting or determining an appropriate media content format for a requesting device. For example, an appropriate media content format for a requesting device may be determined based on the storage, bandwidth, and/or display capabilities of the requesting device, or any other suitable format requirements or preferences associated with the requesting device or the user. Regardless of the mechanism used to determine an appropriate media content format for a requesting device, transcoding server 450 may transcode the mirrored copy of the media content into that media content format and provide the mirrored, transcoded copy of the media content to the requesting device. Control circuitry 452 of transcoding server 450 may include one or more transcoders 458 for transcoding a mirrored copy of the media content from a first format to a second format. Where control circuitry 452 includes multiple transcoders 458, transcoding server 450 may include circuitry or other suitable means (e.g., handlers) for selecting one or more transcoders for any given transcoding task, based, for example, on the media content type, input format of the mirrored copy, or output format for the requested media content. In some embodiments, transcoding server 450 may store the transcoded, mirrored copy of the media content on storage 454.

Media system 400 may include multiple transcoding servers 450, but only one is shown to avoid overcomplicating the drawing. In some embodiments, the particular transcoding server 450 that transcodes and delivers media content to a requesting device may be selected from multiple transcoding servers 450 based, for example, on the type of the media content (e.g., video, audio, text, etc.) to be transcoded. In some embodiments, transcoding server 450 may be an application (e.g., a Web server application) resident on remote mirroring and transcoding server 440, rather than a physical server. In some embodiments, transcoding server 450 and mirroring server 430 may be the same server, but are drawn as separate elements for clarity. In these embodiments, for example, the same remote server 440 (which may be one of multiple remote servers 440) may store mirrored copies of the media content, receive requests from a requesting device, and provide the mirrored copy in the original or transcoded format to the requesting devices. Transcoding server 450 and mirroring server 430 may also be respective applications (e.g., server applications) resident on remote mirroring and transcoding server 440. Systems and methods for remote storage of media content, and providing remotely stored media content to user equipment are discussed in greater detail in connection with Ellis et al., U.S. patent application Ser. No. 09/332,244, filed Jun. 11, 1999, which is hereby incorporated by reference herein in its entirety.

System 400 is intended to illustrate a number of approaches, or network configurations, by which user equipment devices and sources of media content and guidance data may communicate with each other for the purpose of accessing media and providing media guidance within a home network or over an external communication network. Interactive media system 400 may typically include more than one of each type of user equipment device. In addition, each user may utilize more than one type of user equipment device (e.g., a user may have a television set and a computer) and also more than one of each type of user equipment device (e.g., a user may have a PDA and a mobile telephone and/or multiple television sets). The user may also set various settings to maintain consistent media guidance application settings across in-home devices and remote devices. Settings include those described herein, as well as channel and program favorites, programming preferences that the guidance application utilizes to make programming recommendations, display preferences, and other desirable guidance settings. For example, if a user sets a channel as a favorite on, for example, the web site www.tvguide.com on a remote device such as their personal computer at their office, the same channel would appear as a favorite on the user's in-home devices (e.g., user television equipment and user computer equipment) as well as the user's mobile devices, if desired. Therefore, changes made on one user equipment device can change the guidance experience on another user equipment device, regardless of whether they are the same or a different type of user equipment device. In addition, the changes made may be based on settings input by a user, as well as user activity monitored by the guidance application. Systems and methods for maintaining consistent media guidance application settings on different user equipment devices within a home network, are described in greater detail in Ellis et al., U.S. patent application Ser. No. 11/179,410, filed Jul. 11, 2005, the disclosure of which is hereby incorporated herein by reference in its entirety.

In some embodiments, interactive media system 400 may include home networks that are accessed by in-home and mobile devices. Users may control in-home devices via a media guidance application implemented on a remote device. For example, users may access an online media guidance application on a website via a personal computer at their office, or a mobile device such as a PDA or web-enabled mobile telephone. The user may set various settings (e.g., recordings, reminders, or other settings) on the online guidance application to control the user's in-home equipment. The online guide may control the user's equipment directly, or by communicating with a media guidance application on the user's in-home equipment. Various systems and methods for user equipment devices communicating, where the user equipment devices are in locations remote from each other, are discussed in, for example, Ellis et al., U.S. patent application Ser. No. 10/927,814, filed Aug. 26, 2004, which is hereby incorporated by reference herein in its entirety.

Where a user or a group of users relies on multiple user equipment devices to access and share media content, the interactive media guidance application may allow users to mirror media content stored on the various devices on a remote server (e.g., remote mirroring and transcoding server 440 (FIG. 4) and access the mirrored copy of the media content using other user equipment devices in a transcoded or original format. A user may mirror one or more storage drives on any of the user's devices. Alternatively, the user may select a subset of media content on any storage drive for mirroring.

The general concept of selecting media content on a user equipment device to be mirrored on a remote server is illustrated with reference to the specific illustrative embodiment of setting up a recording of a television program for mirroring on the remote server in illustrative display screen 500 of FIG. 5. It should be understood that any type of media content (and not just television programs) may be designated to be mirrored by a remote server, such as, for example, mirroring server 430 (FIG. 4). Screen 500 may be accessed from any interactive media guidance application implemented on any of user equipment devices 402, 404, or 406 (all of FIG. 4) in response to a user indication to record a program from a program listings screen, such as, for example, screen 100 (FIG. 1). Illustrative screen 500 may include program information area 502, program recording options 504 and 506, mirroring option 508, sharing options 510, 512, and 514, and selectable controls 520 and 530. Screen 500 is only one type of screen that may be displayed to allow a user to record and mirror programs using the interactive media guidance application. Other screens may be displayed by the interactive media guidance application without departing from the scope of the invention. Using interactive media guidance applications to set recordings of television programs is discussed in greater detail in Ellis U.S. Patent Publication No. 2003/0149980, which is incorporated by reference herein in its entirety.

Program information area 502 may include any of text, graphics, and video information related to the selected program. For example, as shown in FIG. 5, program information area 502 includes the title, channel, time, and release year for the selected program. Program information area 502 may also include a summary and a representative graphic or video of the selected program.

The interactive media guidance application may allow the user to select program recording settings for the selected program. In response to the user selecting program recording setting 504, the interactive media guidance application may be configured to record the current episode of the selected program. In response to the user selecting program recording settings 506, the interactive media guidance application may be configured to record all future episodes of the selected program (e.g., set a series recording). Series recordings are discussed in greater detail in Knudson et al. U.S. Patent Publication No. 2005/0204388, which is hereby incorporated by reference herein in its entirety. Program recording options 504 and 506 are merely illustrative. Additional options may be included in screen 500 without departing from the scope of the present invention.

The interactive media guidance application may allow the user to set options for mirroring the recording on mirroring server 430 (FIG. 4) and sharing the mirrored recording with other users or devices associated with the user's mirroring account or group. For example, the user may select option 508 to designate the recording for mirroring by mirroring server 430 (FIG. 4). If option 508 is selected, the recording may be mirrored in accordance with a user-determined mirroring schedule or in response to new recordings being made for the selected program. The user may also select option 510 to configure access to the mirrored recording. In response to the user selecting shared mirrored recording option 510, the interactive media guidance application may allow other user equipment devices or users associated with or authorized by the user to access the mirrored recording on the mirroring server. For example, the user may authorize access to the recording by all or a subset of users associated with the user using selectable control 512. Alternatively or additionally, the user may authorize access to the recording by all or a subset of user devices associated with the user's account or group using selectable option 514. Although FIG. 5 shows the selection of a specific program recording for mirroring, mirroring may also be configured for one or more drives on the user equipment without designating specific programs.

Mirrored copies of the media content may be accessed using any suitable approach. For example, FIG. 6 shows illustrative screen 600 for accessing mirrored copies of media content in accordance with one embodiment of the invention. It should be understood that any type of media content (and not just those shown in screen 600) may be mirrored on mirroring server 430 (FIG. 4). Screen 600 may be a part of any suitable interactive media application for remotely accessing media content and may be a displayed on any of user equipment devices 402, 404, or 406 (all of FIG. 4) in response to a user indication to view media content mirrored on mirroring server 430 (FIG. 4). Screen 600 may be accessed using any suitable approach. In one suitable approach, the user may access screen 600 using an interactive media guidance application which may include a selectable icon or link for accessing the mirrored content directory. In some embodiments, screen 600 may be displayed when the user, for example, presses a “DIR” key on a remote control or selects “User Directory” feature 220 of screen 200 of FIG. 2. Illustrative screen 600 may include display grid 620 including mirrored content entries 612, selectable features 640 and 610, banner advertisement 608, selectable advertisement 606, service provider information 630, user identification information 670, and device identification information 680. It should be understood that screen 600 is only one type of screen that may be displayed to allow a user to view mirrored copies of the media content using the interactive media guidance application. Other screens may be displayed by the interactive media guidance application without departing from the scope of the invention.

Selectable features 640 and 610 may selected by the user to customize or limit the media content entries displayed in display grid 620. For example, “Videos” feature 650 may be selected to limit the content in grid 620 to only video content. Alternatively or additionally, the user may limit the content of grid 620 by specifying a user-defined search using, for example, “Search” feature 660. In addition to restricting the content displayed in grid 620, the user may sort the content in grid 620. For example, the user may select “By Theme” feature 630, to sort the content of grid 620 according to various themes such as children's programs, sports, adult content, etc. The user may select any of the content entries in screen 600, such as for example, content entry 612, for playback on the requesting device. One or more of advertisements 606 or 608 may be selected and displayed based on user profile information or based on user selections in screen 600.

If desired, screen 600 may be displayed as an overlay or as a partial or full display screen. In some embodiments, the display mode for screen 600 may be selected based on the display, bandwidth, and/or storage capabilities of the user equipment device on which it is displayed. For example, screen 600 may be displayed as a partial screen when displayed on standard user devices such as installed television equipment, or as a full screen when displayed on a portable user device such as portable video player.

FIG. 7 shows illustrative process 700 which is a somewhat high level overview of a process for mirroring media content and providing access to a mirrored copy of the media content in accordance with some embodiments of the invention. At step 710, media content is stored or recorded on a first user equipment device. The first user equipment device, which represents the source device, may be any of user equipment devices 402, 404, or 406 (all of FIG. 4). At step 720, the recorded media content is mirrored onto a remote server. The mirrored copy of the media content may be stored on remote mirroring and transcoding server 440 (FIG. 4), or where separate mirroring and transcoding servers are used, on mirroring server 430 (FIG. 4). The remote server may be coupled to the source device over a network (e.g., communication path 460 (FIG. 4)). At step 730, the remote server transcodes a mirrored copy of the media content into a second media content format which may be provided to a second user equipment device at step 740. The second user equipment device, which represents the requesting device, may also be any of user equipment devices 402, 404, or 406 (all of FIG. 4). The media content may be transcoded and provided to the requesting device by remote mirroring and transcoding server 440 (FIG. 4), or where separate mirroring and transcoding servers are used, transcoding server 450 (FIG. 4). At step 750, a user input to access the media content is received by either the first user equipment (source device) or the second user equipment (a requesting device other than the source device). At step 760, a determination is made as to whether the user input was received by the first user equipment device or the second user equipment device. This determination may be made by remote mirroring and transcoding server 440 (FIG. 4) or, in some embodiments, by transcoding server 450 (FIG. 4). If the user input to access the media content was received by the first user equipment, the media content is played by the first user equipment from a local copy of the media content at step 760. Otherwise, a mirrored, transcoded copy of the media content (provided at step 740) is played on the second user equipment at step 780.

In practice, one or more steps shown in process 700 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed. For example, in some embodiments, transcoding the media content (which occurs at step 730) and providing the media content (which occurs at step 740) may both be performed after step 760, in response to a user input to access the media recording received by a second user device that requires transcoding of the media content. FIGS. 8 and 9 show somewhat more detailed illustrative processes for mirroring media content on a remote server, and providing a mirrored copy of the media content from the remote server to various user equipment devices in a transcoded or original media content format. In the sections that follow, depending on the particular process step being described, reference may be made to mirroring server 430 (FIG. 4) or to transcoding server 450 (FIG. 4) for clarity. Regardless of the particular server referenced, it is understood that mirroring server 430 (FIG. 4) and transcoding server 450 (FIG. 4) may be combined into one server, such as, for example, remote mirroring and transcoding server 440 (FIG. 4).

FIG. 8 shows illustrative process 800 for mirroring media content stored on user equipment devices onto mirroring server 430 (FIG. 4) according to one embodiment of the invention. In some embodiments, prior to selecting or designating media content for mirroring, the user may configure the mirroring service. For example, at step 810, the user may subscribe to the mirroring service associated with mirroring server 430 (FIG. 4) and configure the service. The user may register all or a subset of the user's user equipment devices with the mirroring service. If desired, the user may select a predetermined maximum amount of storage to be allocated on mirroring server 430 (FIG. 4) for storing mirrored copies of the user's media content. In some embodiments, mirroring server 430 (FIG. 4) may simply allocate storage on an as-needed basis without first requiring the user to select a predetermined maximum storage allocation. In some embodiments, the user may also specify the mirroring schedule for the user equipment devices at step 810. For example, the user may choose to mirror media content on any of the user's devices based on a pre-determined schedule. The predetermined schedule may include specific dates and times, or may be on any periodic basis, such as, for example, monthly, weekly, daily, hourly, etc. Alternatively, in some embodiments, mirroring may be performed “live,” in response updates to media content on the user device without relying on a predetermined schedule. In these embodiments, updates and additions to media content may be mirrored at any appropriate time without significantly interfering with other active tasks being performed on the user equipment. For example, mirroring may be triggered by the mirroring server when a predetermined minimum percentage of processing capacity is available on the user equipment device.

At step 820, the user may be prompted to select media content to be mirrored on mirroring server 430 (FIG. 4). Media content selected for mirroring may include content stored on any of user equipment devices 402, 404, or 406 (all of FIG. 4). In some embodiments, the user may mirror selected storage drives of the user equipment device. Alternatively, the user may choose to mirror a subset of the media content on the user equipment device. In some embodiments, a user may choose to mirror only certain types of media content. For example, a user may choose to mirror only MPEG-2, MPEG-4, or Windows media content. In these embodiments, mirroring server 430 (FIG. 4) may automatically mirror media content corresponding to the selected media content type or types as they are added or updated on the user equipment. The user may select media content or drives for mirroring using any appropriate interface. In some embodiments, an interactive media program may be provided to the user for selecting media content or drives for mirroring.

In some embodiments, users may also designate media content to be mirrored on mirroring server 430 (FIG. 4) by setting up search queries that define media content the user wants to mirror. The user may, for example, define Boolean expressions that result in mirroring media content that satisfy the criteria or criterion of the query. Suitable queries may include any parameters associated with the media content such as, for example, content titles, actors or musicians within video or audio content, themes or categories associated with the media content (e.g., sports, children's programming, drama, etc), text within content information fields, media content types (e.g., audio, video, etc.), format of the media content (e.g., MPEG-2, MPEG-4, etc.), or any other suitable parameters associated with the media content. The search query may be stored on the user equipment device or on mirroring server 430 (FIG. 4) to be used for future mirroring updates.

At step 830, a mirroring request is generated for content to be mirrored on mirroring server 430 (FIG. 4). The mirroring request may be generated concurrently with step 820, immediately after step 820, or sometime in the future after step 820, such as, in accordance with a pre-determined mirroring schedule. In generating the mirroring request, each selected media content may be assigned a content identifier. In addition, groups of media recordings selected or designated for mirroring may be assigned a grouping identifier. The mirroring request may also identify the source device, the user, the content type of the media content, the size of the media content, and other suitable information associated with the media content to be mirrored. In some embodiments, one mirroring request may be generated for multiple media content concurrently selected or designated for mirroring. In some embodiments, the mirroring request may include billing information for the user.

At step 840, the mirroring request is transmitted to mirroring server 430 (FIG. 4). The request may be transmitted from the source device to mirroring server 430 (FIG. 4) through communications path 460 (FIG. 4) using any suitable communications protocol or group of protocols. In some embodiments, the mirroring request may be transmitted using, for example, as an XML file.

At step 850, the mirroring request is received by mirroring server 430 (FIG. 4) from the source device. The received mirroring request may be processed to determine, for example, the user and source device associated with the request. In some embodiments, mirroring server 430 (FIG. 4) may store received mirroring requests for various purposes including, but not limited to, statistical analysis and debugging. The process continues to step 860.

At step 860, a determination is made whether the user has sufficient allocated storage capacity to store the media content. For example, information included in the mirroring request, such as, for example, the size of the media content, may be used by the mirroring server to determine whether the user has sufficient allocated storage capacity to store the media content. If the user does not have sufficient allocated storage capacity to store the media content, the user may be notified at step 870 and provided an opportunity to obtain more allocated storage capacity. In some embodiments, the mirroring server may automatically allocate extra storage capacity to the user and the user's account may be updated to reflect the new allocation. If the user has sufficient allocated storage capacity to store the media content or if the mirroring server allocates more capacity, the process proceeds to step 880.

At step 880, a mirrored copy of the media content and, if necessary, metadata associated with the media content, may be created on the mirroring server. In one embodiment, the mirroring server determines, based, for example, on various parameters included in the mirroring request, whether a mirror copy already exists for the media content. For example, the content identifier associated with the media content may be compared with content identifiers for other media content of the same type associated with the same user and source device to determine if a mirrored copy of the media content exists on mirroring server 430 (FIG. 4). If, for example, a mirrored copy already exists and the media content has been updated on the source device since the pre-existing mirrored copy was made, the pre-existing mirror copy may be updated. In some embodiments, rather than updating the pre-existing mirrored copy, a new version of the mirrored copy associated with the same content identifier may be created. The maximum number of versions associated with each content identifier may be a predetermined number set by the user or by the mirroring server. If it is determined that a mirrored copy of the media content does not already exist on the mirroring server, a new mirrored copy may be created and stored by mirroring server 430 (FIG. 4). In some embodiments, a data server or storage level for storing the mirrored copy of the media content may be determined based, for example, on information included in the mirroring request.

At step 890, a user directory (e.g., screen 600 of FIG. 6) maintained for mirrored copies of media content may be updated to reflect the newly-added or updated mirrored copies.

In practice, one or more steps shown in process 800 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed. For example, the source device may determine, prior to generating a mirroring request, if the user has sufficient allocated storage capacity for the media content selected or designated for mirroring.

FIG. 9 shows illustrative process 900 for playing media content from mirroring server 430 (FIG. 4) in accordance with some embodiments of the invention. At step 910, a user input is received by a requesting device to access media content mirrored on mirroring server 430 (FIG. 4). The user may request access to media content on the mirroring server using any suitable requesting device. For example, any of user equipment devices 402, 404, and 406 (all of FIG. 4) may be used to access media content mirrored on the mirroring server. In some embodiments, the requesting device may include a client interface for displaying a directory of mirrored copies of media content on the mirroring server, such as, for example, screen 600 (FIG. 6). In some embodiments, the directory may be overlaid on top of a television program that the user is watching, may be overlaid on top of a program guide display screen, may be displayed within a dedicated program guide display screen such as the arrangement in FIG. 6, or may be displayed within a web page such as in the arrangement of FIG. 2. Alternatively, listings for mirrored copies of the media content may be presented to users in regular program listings screens such as shown in FIG. 1. In some embodiments, only media content to which the user or the requesting device has been granted access may be included in the directory of screen 600 displayed on the requesting device. For example, a user may grant access to all user devices associated with user's identifier on the mirroring server (e.g., all devices registered by the user in step 810 of FIG. 8). In some embodiments, access to media content may also be obtained through a communal account shared by a group of user equipment devices. In some embodiments, each user and/or user equipment device may have unique credentials (e.g., password and username) for accessing media content on mirroring server 430 (FIG. 4).

At step 912, an access request may be generated on the requesting device for the media content selected by the user at step 910. The access request may include, but is not limited to, a content identifier for the requested media content (which may be obtained from the selected entry in the mirrored media content directory), a device identifier for the requesting device, and if desired, a preferred output format for playing the requested media content.

At step 914, the access request may be transmitted from the requesting device to transcoding server 450 (FIG. 4), which may be the same as, or a different server from, mirroring server 430 (FIG. 4). The request may be transmitted from the requesting device directly to the transcoding server or may be routed through an intermediary device or server. At step 916, the access request is received by the transcoding server. The received access request may be processed to determine the user and/or requesting device associated with the request. In some embodiments, transcoding server 450 (FIG. 4) may store received access requests for various purposes including, but not limited to, statistical analysis and debugging. At step 918, based, for example, on information included in the access request, and/or directory information received from mirroring server 430 (FIG. 4), transcoding server 450 (FIG. 4) may determine whether the requesting device is a device other than the source device. If the requesting device is the source device, the process continues to step 950 (described below). Otherwise, the process continues to step 920.

At step 920, transcoding server 450 (FIG. 4) may identify an appropriate media content format for the requesting device. In some embodiments, an appropriate media content format may be included in the access request received from the requesting device. In some embodiments, the transcoding server may automatically determine an appropriate media content format for the requesting device based, for example, on the capabilities of the requesting device. For example, transcoding server 450 (FIG. 4) may select an appropriate media content format from a plurality of media content formats based on the capabilities of the requesting device. In some embodiments, an appropriate format for the requesting device may be selected based on any combination of the bandwidth, display, or storage capabilities of the requesting device.

The process continues to step 924 where the transcoding server may determine whether transcoding is required. For example, transcoding may be required if the media content format identified at step 920 is not the same as, equivalent to, or interchangeable with, the original format of the mirrored copy of the media content. If transcoding is not required, the process continues to step 940 (described below). Otherwise the process continues to step 926.

At step 926, a mirrored copy of the media content may be transcoded on transcoding server 450 (FIG. 4). In some embodiments, transcoding server 450 may obtain the mirrored copy of the media content from mirroring server 430 (FIG. 4) through direct link 442 (FIG. 4) prior to or in concurrence with transcoding. In some embodiments, transcoding on transcoding server 450 (FIG. 4) may occur prior to receiving a request for the media content from the requesting device (i.e., prior to step 916). In these embodiments, transcoding server 450 or mirroring server 430 (both of FIG. 4) may store the pre-transcoded copy of the mirrored media content to be provided in response to access requests. In some embodiments, the pre-transcoded media content may be automatically provided in media content updates to user devices designated to receive such automatic updates.

At step 928, the mirrored, transcoded copy of the media content is provided to the requesting device by transcoding server 450 (FIG. 4). The media content may be transmitted to the requesting device through communications path 460 (FIG. 4). In some embodiments, the mirrored, transcoded copy of the media content may be provided to the requesting device in segments based, for example, on the decoding rate and/or available storage capacity of the requesting device. The process continues to step 930.

At step 930, the mirrored, transcoded media content provided to the requesting device is played on the requesting device. The media content may be played on the requesting device remotely from transcoding server 450 (FIG. 4) or locally from a mirrored, transcoded copy provided by transcoding server 450 (FIG. 4) and cached or stored by the requesting device. Regardless of how the media content is played on the requesting device, the user may be provided with VCR-like control of the media content. For example, the media content may be played using an interactive media guidance application. The media guidance application may display an overlay or other indication to indicate to a user when the user has stopped, paused, rewound, or fast-forwarded the media content. If the media content is played on the requesting device remotely from transcoding server 450 (FIG. 4), the transcoding server may store a pointer within the mirrored and transcoded media content, which may be adjusted as the media content is played, fast-forwarded, rewound, or stopped, to keep track of the current playback location. In these embodiments, transcoding server 450 (FIG. 4) may use pointer information for the current program being played by the user to determine when the next media content requested by the user should be made ready for playback. For example, at a suitable point before a user pointer is adjusted beyond the beginning or end of the media content, the previous or next media content requested by the requesting device may be processed.

Returning now to step 924, if transcoding is not required by the requesting device (e.g., the requesting device is capable of playing the media content in the media content format of the mirrored copy, or the access requests specifies a media content format that is identical to, equivalent to, or interchangeable with, the media content format of the mirrored copy) the process continues to step 940. At step 940, the mirrored copy of the media content is provided to the requesting device in the original media content format of the mirrored copy. Where appropriate, the mechanisms described in relation to step 928 above for providing a transcoded copy of the media content to a requesting device may also be used to provide the mirrored copy of the media content, without transcoding, to the requesting device. The media content provided to the requesting device is played at the requesting device at step 942. Where appropriate, the mechanisms described above in relation to step 930 for playing a mirrored, transcoded copy of the media content on a requesting device may be used.

Returning now to step 918, if the requesting device is the source device, the process continues to step 950. In some embodiments, if desired, system 400 (FIG. 4) may be configured such that access requests from the source device, which are typically data recovery requests, are received and processed by mirroring server 430. At step 950, mirroring server 430 (FIG. 4) or transcoding server 450 (FIG. 4) may determine whether the requested media content is available on the source device. If the source device does not have the media content, the media content may be restored on the source device from the mirrored copy on mirroring server 430 (FIG. 4) at step 952. In some embodiments, the media content may be automatically restored in response to a user input to access the media content received by the source device and transmitted from the source device to the mirroring server. In other embodiments, the media content may be restored only in response to a user request to restore the media content (e.g., in response to a user response to an on-screen prompt at step 952). The process continues to step 954 where the media content is played on the source device from the copy of the media content that is stored (or restored) on the source device.

In practice, one or more steps shown in process 900 may be combined with other steps, performed in any suitable order, performed in parallel (e.g., simultaneously or substantially simultaneously) or removed. For example, in some embodiments, steps 926, 928, and 930 of process 900 may be combined or performed concurrently. In these embodiments, the transcoding, providing, and playback steps may be combined such that, a portion of the media content is played on the requesting device while the remaining portion is being transcoded and provided to the requesting device. In one suitable approach, the media content may be transcoded and played back by transcoding server 450 (FIG. 4) on the requesting device in real-time. If the media content is distributed as a digital data stream, the requesting device may decode the data stream in real-time. The media content may be distributed and played back according to preferences that were set up by the user. In a second suitable approach, the media content may be distributed as one or more digital files or as a digital data stream, and are stored by the requesting device for playback. In a third suitable approach, the media content may be played back by transcoding server 450 (FIG. 4) and distributed according to a schedule over an analog or digital channel using a suitable near-video-on-demand (NVOD) approach. Any combination of these approaches, or any other suitable approach, may also be used.

It will be appreciated that while the discussion of media content has focused on video content, the principles of media guidance can be applied to other types of media content, such as music, images, etc.

The above described embodiments of the present invention are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow. 

1-120. (canceled)
 121. A method comprising: storing on at least one remote device a plurality of versions of a content item; determining that the content item is to be mirrored to another device different from the at least one remote device; accessing one or more criteria for the content item; selecting a subset of the plurality of versions to mirror to the another device based on the one or more criteria for the content item, wherein the subset comprises less than all of the plurality of versions of the content item; and automatically mirroring the subset to the another device to cause the another device to store the subset of the plurality of versions of the content item.
 122. The method of claim 121, wherein the subset of the plurality of versions is selected based on criteria about a capability of the another device.
 123. The method of claim 121, further comprising: determining metadata corresponding to the subset; and automatically mirroring the metadata to the another device to cause the another device to store the metadata.
 124. The method of claim 121, wherein the metadata comprises at least one of subtitles, text tracks, music information tracks, additional video formats, and additional language audio tracks corresponding to a version of the content item.
 125. The method of claim 121, wherein the automatically mirroring the subset comprises: transcoding the subset to a format suitable for the another device.
 126. The method of claim 121, wherein the automatically mirroring the subset comprises: determining whether storing the subset at the another device does not exceed a predetermined maximum amount of storage available to the another device.
 127. The method of claim 121, wherein the automatically mirroring the subset comprises: determining whether the another device is authorized to store the subset.
 128. The method of claim 121, wherein the one or more criteria is based on one or more of content title, actor name, content theme or category, text within content information fields, or audio content.
 129. The method of claim 121, wherein the at least one remote device includes a content server.
 130. The method of claim 121, further comprising: receiving a request to access the content item; and wherein the automatically mirroring the subset is based on receiving the request.
 131. A system comprising: one or more input/output (I/O) paths for storing content; and control circuitry configured to: store, via the one or more I/O paths, on at least one remote device a plurality of versions of a content item; determine that the content item is to be mirrored to another device different from the at least one remote device; access one or more criteria for the content item; select a subset of the plurality of versions to mirror to the another device based on the one or more criteria for the content item, wherein the subset comprises less than all of the plurality of versions of the content item; and automatically mirror the subset to the another device to cause the another device to store the subset of the plurality of versions of the content item.
 132. The system of claim 131, wherein the control circuitry is configured to select the subset of the plurality of versions based on criteria about a capability of the another device.
 133. The system of claim 131, wherein the control circuitry is further configured to: determine metadata corresponding to the subset; and automatically mirror the metadata to the another device to cause the another device to store the metadata.
 134. The system of claim 131, wherein the metadata comprises at least one of subtitles, text tracks, music information tracks, additional video formats, and additional language audio tracks corresponding to a version of the content item.
 135. The system of claim 131, wherein the control circuitry, when automatically mirroring the subset, is configured to: transcode the subset to a format suitable for the another device.
 136. The system of claim 131, wherein the control circuitry, when automatically mirroring the subset, is configured to: determine whether storing the subset at the another device does not exceed a predetermined maximum amount of storage available to the another device.
 137. The system of claim 131, wherein the control circuitry, when automatically mirroring the subset, is configured to: determine whether the another device is authorized to store the subset.
 138. The system of claim 131, wherein the one or more criteria is based on one or more of content title, actor name, content theme or category, text within content information fields, or audio content.
 139. The system of claim 131, wherein the at least one remote device includes a content server.
 140. The system of claim 131, wherein the control circuitry is further configured to: receive a request to access the content item; and automatically mirror the subset based on receiving the request. 